﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace SIOCUR.Models
{
    public class SIOCURRepository
    {

        private SIOCURDataContext db = new SIOCURDataContext();
        
        //private MapeoOracle dbo = new MapeoOracle();
        //private OracleMapeo OraMap = new OracleMapeo(); --bueno
        
        //private usuarios usu = new usuarios();
        //private Usuario usuu = new Usuario();

        private USUARIOSIOCUR usu = new USUARIOSIOCUR();
        private CONDICIONES_OPERATIVAS cope = new CONDICIONES_OPERATIVAS();
        private LOTE_DE_PRODUCTO loteP = new LOTE_DE_PRODUCTO();
        private PROGRAMA_EN_TERMINAL pTerm = new PROGRAMA_EN_TERMINAL();
        private INTEGRADO_DE_LOTE inteL = new INTEGRADO_DE_LOTE();
        private INTERFASE_DE_LOTES interLote = new INTERFASE_DE_LOTES();
        private PRODUCTO_NO_CONFORME prodNoCon = new PRODUCTO_NO_CONFORME();
        private EXISTENCIAS_TERMINAL_POLIDUCTO exitenciasPoli = new EXISTENCIAS_TERMINAL_POLIDUCTO();
        private EQUIPO_DINAMICO eqDinamico = new EQUIPO_DINAMICO();
        private EQUIPO_AUXILIAR eqAuxiliar = new EQUIPO_AUXILIAR();
        private RASTREO_DE_LOTE rastLote = new RASTREO_DE_LOTE();
        private FLUJO_MEDIDO fmedido = new FLUJO_MEDIDO();
        private VOLUMEN_INTEGRADO volint = new VOLUMEN_INTEGRADO();
        private EXISTENCIAS_TERMINAL_OLEODUCTO existenciasOleo = new EXISTENCIAS_TERMINAL_OLEODUCTO();
        
        // Query Methods
        public IQueryable<USUARIOSIOCUR> FindAllUsuarios()
        {
            return db.USUARIOSIOCUR.AsQueryable();
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public USUARIOSIOCUR GetUsuario(String nom_usu)
        {
            USUARIOSIOCUR aux = db.USUARIOSIOCUR.SingleOrDefault(d1 => d1.USUARIO == nom_usu);
            return aux;
            //return db.usuarios.SingleOrDefault(d1 => d1.nom_usu == nom_usu);
            //return OraMap.Usuarios.SingleOrDefault(d1 => d1.Usuario1 == nom_usu); --bueno para oracle
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public USUARIOSIOCUR GetUsuario(String nom_usu, String password, String waa)
        {
            //return db.usuarios.SingleOrDefault(d1 => d1.nom_usu == nom_usu);

            USUARIOSIOCUR aux = db.USUARIOSIOCUR.SingleOrDefault(d1 => d1.USUARIO == nom_usu);

           if (aux != null)
            {
                if (aux.CONTRASENA == password)
                {
                    return aux;
                }
            }

            /*
                Usuario aux = OraMap.Usuarios.SingleOrDefault(d1 => d1.Usuario1 == nom_usu);

                if (aux != null)
                {
                    if (aux.Contraseña == password)
                    {
                        return aux;
                    }
                }

              */
            return null;
        }

        public void AddUsuario(String usua, String con, String tip, String est, String sis)
        {
            usu.USUARIO = usua;
            usu.CONTRASENA = con;
            usu.TIPO_USER = tip;
            usu.ESTACION = est;
            usu.SISTEMA = sis;

            db.USUARIOSIOCUR.InsertOnSubmit(usu);
            db.SubmitChanges();

            // usuu.Id = id;  --- bueno para oracle
            // usuu.Usuario1 = nom_usu;
            //usuu.Contraseña = pwd_usu;
            //OraMap.Usuarios.InsertOnSubmit(usuu);
            //OraMap.SubmitChanges();
        }

        /*Tabla Condiciones Operativas*/
        public void AddOperatingConditions(String est, String sis, DateTime fec, String suc, String des, String ent, String flu)
        {
            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
            
            Double succion;
            succion = Convert.ToDouble(suc);

            Double descarga;
            descarga = Convert.ToDouble(des);

            Double entrada;
            entrada = Convert.ToDouble(ent);

            int flujo;
            flujo = Convert.ToInt32(flu);
            
            cope.ESTACION = est;
            cope.SISTEMA = sis;
            //cope.FECHA = fecha;
            cope.FECHA = fec;
            cope.PRESION_SUCCION = succion;
            cope.PRESION_DESCARGA = descarga;
            cope.PRESION_ENTRADA = entrada;
            cope.FLUJO = flujo;
            
            db.CONDICIONES_OPERATIVAS.InsertOnSubmit(cope);
            db.SubmitChanges();

        }

        public IQueryable<CONDICIONES_OPERATIVAS> FindAllConditions()
        {
            return db.CONDICIONES_OPERATIVAS.AsQueryable();
        }

        public IQueryable<CONDICIONES_OPERATIVAS> getConditions(String estacion, String sistema)
        {
            return from condiciones in db.CONDICIONES_OPERATIVAS
                   where (condiciones.FECHA.Date == DateTime.Now.Date && condiciones.ESTACION == estacion && condiciones.SISTEMA == sistema)
                   orderby condiciones.ID
                   select condiciones;
        }

        public IQueryable<CONDICIONES_OPERATIVAS> getConditions()
        {
            return from condiciones in db.CONDICIONES_OPERATIVAS
                   where (condiciones.FECHA.Date == DateTime.Now.Date)
                   orderby condiciones.ID
                   select condiciones;
        }

        public CONDICIONES_OPERATIVAS GetCondition(int id)
        {
            return db.CONDICIONES_OPERATIVAS.SingleOrDefault(d => d.ID == id);
        }

        public IQueryable<CONDICIONES_OPERATIVAS> VerificaRegistro(String estacion, String sistema)
        //public int VerificaRegistro(String estacion, String sistema)
        {
            return from condiciones in db.CONDICIONES_OPERATIVAS
                   where (condiciones.FECHA.Date == DateTime.Now.Date && condiciones.ESTACION == estacion && condiciones.SISTEMA == sistema)
                   select condiciones;
        }
        
        /*Tabla Lote de Producto*/
        public void AddLoteProducto(String lot, String pro, String ano)
        {
            int lote;
            lote = Convert.ToInt32(lot);

            int anno;
            anno = Convert.ToInt32(ano);
            
            loteP.LOTE = lote;
            loteP.PRODUCTO = pro;
            loteP.AÑO = anno;

            db.LOTE_DE_PRODUCTO.InsertOnSubmit(loteP);
            db.SubmitChanges();
        }

        public IQueryable<LOTE_DE_PRODUCTO> FindAllLoteProducto()
        {
            return db.LOTE_DE_PRODUCTO.AsQueryable();
        }

        public LOTE_DE_PRODUCTO GetLoteProducto(int id)
        {
            return db.LOTE_DE_PRODUCTO.SingleOrDefault(d1 => d1.ID == id);

        }

        /*Tabla Equipo Dinamico-Poliducto*/
        public void AddEqDinamico(String est, String sis, DateTime fec, String turb, String esta, String hracum, String op, String disp, String ndisp, String mant)
        {
            int turbi;
            turbi = Convert.ToInt32(turb);

            int hrs;
            hrs = Convert.ToInt32(hracum);

            int opr;
            opr = Convert.ToInt32(op);

            int dispo;
            dispo = Convert.ToInt32(disp);

            int nodis;
            nodis = Convert.ToInt32(ndisp);

            int man;
            man = Convert.ToInt32(mant);

            eqDinamico.ESTACION = est;
            eqDinamico.SISTEMA = sis;
            //eqDinamico.FECHA = fech;
            eqDinamico.FECHA = fec;
            eqDinamico.TURBINA = turbi;
            eqDinamico.ESTADO = esta;
            eqDinamico.HORAS_ACUMULADAS = hrs;
            eqDinamico.OPERO = opr;
            eqDinamico.DISPONIBLE = dispo;
            eqDinamico.NO_DISPONIBLE = nodis;
            eqDinamico.MANTENIMIENTO = man;

            db.EQUIPO_DINAMICO.InsertOnSubmit(eqDinamico);
            db.SubmitChanges();     
        }

        public IQueryable<EQUIPO_DINAMICO> FindAllEqDinam()
        {
            return db.EQUIPO_DINAMICO.AsQueryable();
        }

        public IQueryable<EQUIPO_DINAMICO> GetEqDinams()
        {
            return from dinamico in db.EQUIPO_DINAMICO
                   where dinamico.FECHA.Date == DateTime.Now.Date
                   orderby dinamico.ID
                   select dinamico;
        }

        public IQueryable<EQUIPO_DINAMICO> GetEqDinams(String estacion, String sistema)
        {
            return from dinamico in db.EQUIPO_DINAMICO
                   where (dinamico.FECHA.Date == DateTime.Now.Date && dinamico.ESTACION == estacion && dinamico.SISTEMA == sistema)
                   orderby dinamico.ID
                   select dinamico;
        }

        public EQUIPO_DINAMICO GetEqDinam(int id)
        {
            return db.EQUIPO_DINAMICO.SingleOrDefault(d1 => d1.ID == id);
        }

        /*Tabla Equipo Auxiliar-Poliducto*/
        public void AddEqAux(String est, String sis, DateTime fec, String fv, String ta, String bct, String motg, String vs)
        {
            //DateTime fech;
            //fech = Convert.ToDateTime(fec);
            
            eqAuxiliar.ESTACION = est;
            eqAuxiliar.SISTEMA = sis;
            //eqAuxiliar.FECHA = fech;
            eqAuxiliar.FECHA = fec;
            eqAuxiliar.FOSA_VACIA = fv;
            eqAuxiliar.TANQUE_AGUA = ta;
            eqAuxiliar.BOMBA_CONTRAINCENDIO = bct;
            eqAuxiliar.MOTOGENERADOR = motg;
            eqAuxiliar.VALVULA_SEGURIDAD = vs;
            
            db.EQUIPO_AUXILIAR.InsertOnSubmit(eqAuxiliar);
            db.SubmitChanges();
        }

        public IQueryable<EQUIPO_AUXILIAR> FindAllEqAuxiliar()
        {
            return db.EQUIPO_AUXILIAR.AsQueryable();
        }

        public IQueryable<EQUIPO_AUXILIAR> GetEqAuxiliars()
        {
            return from auxiliar in db.EQUIPO_AUXILIAR
                   where auxiliar.FECHA.Date == DateTime.Now.Date
                   orderby auxiliar.ID
                   select auxiliar;
        }

        public IQueryable<EQUIPO_AUXILIAR> GetEqAuxiliars(String estacion, String sistema)
        {
            return from auxiliar in db.EQUIPO_AUXILIAR
                   where (auxiliar.FECHA.Date == DateTime.Now.Date && auxiliar.ESTACION == estacion && auxiliar.SISTEMA == sistema)
                   orderby auxiliar.ID
                   select auxiliar;
        }
        
        public EQUIPO_AUXILIAR GetEqAuxiliar(int id)
        {
            return db.EQUIPO_AUXILIAR.SingleOrDefault(d1 => d1.ID == id);
        }

        /*
        public IQueryable<CONDICIONES_OPERATIVAS> VerificaRegistro(String estacion, String sistema)
        {
            return from condiciones in db.CONDICIONES_OPERATIVAS
                   where (condiciones.FECHA.Date == DateTime.Now.Date && condiciones.ESTACION == estacion && condiciones.SISTEMA == sistema)
                   select condiciones;
        }
        */

        public IQueryable<EQUIPO_AUXILIAR> VerificarEqAux(String estacion, String sistema)
        {

            return from eqauxiliar in db.EQUIPO_AUXILIAR
                   where (eqauxiliar.FECHA.Date == DateTime.Now.Date && eqauxiliar.ESTACION == estacion && eqauxiliar.SISTEMA == sistema)
                   select eqauxiliar;
        }

        /*Tabla Exietncias Terminal-Poliducto*/
        public void AddExistPoli(String est, String sis, String lot, DateTime fec, String ano, String actu, String cupo, String salid, String repAuto)
        {
            int lote;
            lote = Convert.ToInt32(lot);
            
            //DateTime fech;
            //fech = Convert.ToDateTime(fec);
            //fech.ToLongDateString();

            int ann;
            ann = Convert.ToInt32(ano);

            int actuall;
            actuall = Convert.ToInt32(actu);

            int cupp;
            cupp = Convert.ToInt32(cupo);

            int sali;
            sali = Convert.ToInt32(salid);

            Double reAuto;
            reAuto = Convert.ToDouble(repAuto);

            exitenciasPoli.ESTACION = est;
            exitenciasPoli.SISTEMA = sis;
            exitenciasPoli.LOTE = lote;
            //exitenciasPoli.FECHA = fech;
            exitenciasPoli.FECHA = fec;
            exitenciasPoli.AÑO = ann;
            exitenciasPoli.ACTUAL = actuall;
            exitenciasPoli.CUPO = cupp;
            exitenciasPoli.SALIDAS = sali;
            exitenciasPoli.REPARTO_AUTOTANQUE = reAuto;

            db.EXISTENCIAS_TERMINAL_POLIDUCTO.InsertOnSubmit(exitenciasPoli);
            db.SubmitChanges();            
        }

        public IQueryable<EXISTENCIAS_TERMINAL_POLIDUCTO> FindAllExisPoli()
        {
            return db.EXISTENCIAS_TERMINAL_POLIDUCTO.AsQueryable();
        }
         
        /*Tabla Interfase de Lote-Poliducto*/
        public void AddInterfaseLote(String est, String sis, DateTime fec, String lo1, String añ1, String lo2, String añ2, String vol)
        {
            //DateTime fechaa;
            //fechaa = Convert.ToDateTime(fec);
            //fechaa.ToLongDateString();            

            int lote;
            lote = Convert.ToInt32(lo1);

            int año1;
            año1 = Convert.ToInt32(añ1);

            int lote2;
            lote2 = Convert.ToInt32(lo2);

            int año2;
            año2 = Convert.ToInt32(añ2);

            int volu;
            volu = Convert.ToInt32(vol);

            interLote.ESTACION = est;
            interLote.SISTEMA = sis;
            //interLote.FECHA = fechaa;
            interLote.FECHA = fec;
            interLote.LOTE1 = lote;
            interLote.AÑO1 = año1;
            interLote.LOTE2 = lote2;
            interLote.AÑO2 = año2;
            interLote.VOLUMEN = volu;
            
            db.INTERFASE_DE_LOTES.InsertOnSubmit(interLote);
            db.SubmitChanges();
        }

        public IQueryable<INTERFASE_DE_LOTES> FindAllInterfaseLotes()
        {
            return db.INTERFASE_DE_LOTES.AsQueryable();
        }

        public IQueryable<INTERFASE_DE_LOTES> GetInterfaseLotes()
        {
            return from interfaseL in db.INTERFASE_DE_LOTES
                   where interfaseL.FECHA.Date == DateTime.Now.Date
                   orderby interfaseL.ID
                   select interfaseL;
        }

        public IQueryable<INTERFASE_DE_LOTES> GetInterfaseLotes(String estacion, String sistema)
        {
            return from interfaseL in db.INTERFASE_DE_LOTES
                   where (interfaseL.FECHA.Date == DateTime.Now.Date && interfaseL.ESTACION == estacion && interfaseL.SISTEMA == sistema)
                   orderby interfaseL.ID
                   select interfaseL;
        }
        
        public INTERFASE_DE_LOTES GetInterfaseLote(int id)
        {
            return db.INTERFASE_DE_LOTES.SingleOrDefault(d1 => d1.ID == id);

        }

        /*Producto no conforme-Poliducto*/
        public void AddProductoNoConforme(String est, String sis, DateTime fec, String cup, String tras, String interf, String conta)
        {
            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
            //fecha.ToLongDateString();

            int cupoo;
            cupoo = Convert.ToInt32(cup);

            int trasg;
            trasg = Convert.ToInt32(tras);

            int interfe;
            interfe = Convert.ToInt32(interf);

            int contam;
            contam = Convert.ToInt32(conta);

            prodNoCon.ESTACION = est;
            prodNoCon.SISTEMA = sis;
            //prodNoCon.FECHA = fecha;
            prodNoCon.FECHA = fec;
            prodNoCon.CUPO = cupoo;
            prodNoCon.TRASCIEGO = trasg;
            prodNoCon.INTERFASE = interfe;
            prodNoCon.CONTAMINADO = contam;

            db.PRODUCTO_NO_CONFORME.InsertOnSubmit(prodNoCon);
            db.SubmitChanges();      
         
        }

        public IQueryable<PRODUCTO_NO_CONFORME> FindAllProductoNoConforme()
        {
            return db.PRODUCTO_NO_CONFORME.AsQueryable();
        }

        /*Tabla PROGRAMA EN TERMINAL-Poliducto*/
        public void AddProgramaTerminal(String est, String sis, String lot, String ano, DateTime fec, String prog, String acum, String flujo) 
        {
            int lote;
            lote = Convert.ToInt32(lot);

            //DateTime fechaa;
            //fechaa = Convert.ToDateTime(fec);
            //fechaa.ToLongDateString();

            int anno;
            anno = Convert.ToInt32(ano);

            int pro;
            pro = Convert.ToInt32(prog);

            int acu;
            acu = Convert.ToInt32(acum);

            int flu;
            flu = Convert.ToInt32(flujo);

            pTerm.ESTACION = est;
            pTerm.SISTEMA = sis;
            pTerm.LOTE = lote;
            //pTerm.FECHA = fechaa;
            pTerm.FECHA = fec;
            pTerm.AÑO = anno;
            pTerm.PROGRAMA = pro;
            pTerm.ACUMULADO = acu;
            pTerm.FLUJO = flu;

            db.PROGRAMA_EN_TERMINAL.InsertOnSubmit(pTerm);
            db.SubmitChanges();
        }

        public IQueryable<PROGRAMA_EN_TERMINAL> FindAllProgramaTeminal()
        {
            return db.PROGRAMA_EN_TERMINAL.AsQueryable();
        }

        /*Tabla INTEGRADO DE LOTE*/
        public void AddIntegratedBatch(String est, String sis, String lot, String ano, DateTime fec, String vol)
        {

            int lote;
            lote = Convert.ToInt32(lot);

            int anno;
            anno = Convert.ToInt32(ano);

            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
           
            int volumen;
            volumen = Convert.ToInt32(vol);

            inteL.ESTACION = est;
            inteL.SISTEMA = sis;
            inteL.LOTE = lote;
            inteL.AÑO = anno;
            //inteL.FECHA = fecha;
            inteL.FECHA = fec;
            inteL.VOLUMEN = volumen;

            db.INTEGRADO_DE_LOTE.InsertOnSubmit(inteL);
            db.SubmitChanges();
        }

        public IQueryable<INTEGRADO_DE_LOTE> FindAllIntegratedBatch()
        {
            return db.INTEGRADO_DE_LOTE.AsQueryable();
        }

        public IQueryable<INTEGRADO_DE_LOTE> GetIntegratedBatchs()
        {
            return from integradoL in db.INTEGRADO_DE_LOTE
                   where integradoL.FECHA.Date == DateTime.Now.Date
                   orderby integradoL.ID
                   select integradoL;
        }

        public IQueryable<INTEGRADO_DE_LOTE> GetIntegratedBatchs(String estacion, String sistema)
        {
            return from integradoL in db.INTEGRADO_DE_LOTE
                   where (integradoL.FECHA.Date == DateTime.Now.Date && integradoL.ESTACION == estacion && integradoL.SISTEMA == sistema)
                   orderby integradoL.ID
                   select integradoL;
        }

        public INTEGRADO_DE_LOTE GetIntegratedBatch(int id)
        {
            return db.INTEGRADO_DE_LOTE.SingleOrDefault(d1 => d1.ID == id);

        }

        /*Tabla RASTREO DE LOTE*/
        public void AddRastreoLote(String lot, String ano, DateTime fec, String vol, String kmi, String kmf)
        {

            int lote;
            lote = Convert.ToInt32(lot);

            int anno;
            anno = Convert.ToInt32(ano);

            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
            
            int volumen;
            volumen = Convert.ToInt32(vol);

            Double kmini;
            kmini = Convert.ToDouble(kmi);

            Double kmfin;
            kmfin = Convert.ToDouble(kmf);

            rastLote.LOTE = lote;
            rastLote.AÑO = anno;
            //rastLote.FECHA = fecha;
            rastLote.FECHA = fec;
            rastLote.VOLUMEN = volumen;
            rastLote.KM_INICIAL = kmini;
            rastLote.KM_FINAL = kmfin;

            db.RASTREO_DE_LOTE.InsertOnSubmit(rastLote);
            db.SubmitChanges();

        }

        public IQueryable<RASTREO_DE_LOTE> FindAllRastreoLote()
        {
            return db.RASTREO_DE_LOTE.AsQueryable();
        }

        public IQueryable<RASTREO_DE_LOTE> GetRastreoLotes()
        {
            return from rastreoL in db.RASTREO_DE_LOTE
                   where rastreoL.FECHA.Date == DateTime.Now.Date
                   orderby rastreoL.ID
                   select rastreoL;
        }

               
        public RASTREO_DE_LOTE GetRastreoLote(int id)
        {
            return db.RASTREO_DE_LOTE.SingleOrDefault(d1 => d1.ID == id);

        }

        /*Flujo Medido*/
        public void AddFlujoMedido(String est, String sis, DateTime fec, String psal, String pdesc)
        {

            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
                        
            Double preSalida;
            preSalida= Convert.ToDouble(psal);

            Double preDescarga;
            preDescarga = Convert.ToDouble(pdesc);

            fmedido.ESTACION = est;
            fmedido.SISTEMA = sis;
            //fmedido.FECHA = fecha;
            fmedido.FECHA = fec;
            fmedido.PRESION_SALIDA = preSalida;
            fmedido.PRESION_DESCARGA = preDescarga;

            db.FLUJO_MEDIDO.InsertOnSubmit(fmedido);
            db.SubmitChanges();
        }

        public IQueryable<FLUJO_MEDIDO> FindAllFlujoMedido()
        {
            return db.FLUJO_MEDIDO.AsQueryable();
        }


        public IQueryable<FLUJO_MEDIDO> GetFlujoMedidos()
        {
            return from flujoM in db.FLUJO_MEDIDO
                   where flujoM.FECHA.Date == DateTime.Now.Date
                   orderby flujoM.ID
                   select flujoM;
        }
        
        public FLUJO_MEDIDO GetFlujoMedido(int id)
        {
            return db.FLUJO_MEDIDO.SingleOrDefault(d1 => d1.ID == id);

        }
       

        /*Volumen Integrado*/
        public void AddVolumenIntegrado(DateTime fec, String pro, String n_teapa, String tla, String salam, String ist, 
            String mya, String desp, String p_esp, String obs)
        {

            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
            
            int programa;
            programa = Convert.ToInt32(pro);

            int nuev_teapa;
            nuev_teapa = Convert.ToInt32(n_teapa);

            int tula;
            tula = Convert.ToInt32(tla);

            int salamanca;
            salamanca = Convert.ToInt32(salam);

            int istmo;
            istmo = Convert.ToInt32(ist);

            int maya;
            maya = Convert.ToInt32(mya);

            int despuntado;
            despuntado = Convert.ToInt32(desp);

            Double pespcif;
            pespcif = Convert.ToDouble(p_esp);


            //volint.FECHA = fecha;
            volint.FECHA = fec;
            volint.PROGRAMA = programa;
            volint.NUEVO_TEAPA = nuev_teapa;
            volint.TULA = tula;
            volint.SALAMANCA = salamanca;
            volint.ISTMO = istmo;
            volint.MAYA = maya;
            volint.DESPUNTADO = despuntado;
            volint.PESO_ESPECIFICO = pespcif;
            volint.OBSERVACION = obs;

            db.VOLUMEN_INTEGRADO.InsertOnSubmit(volint);
            db.SubmitChanges();
        }

        public IQueryable<VOLUMEN_INTEGRADO> FindAllVolumenIntegrado()
        {
            return db.VOLUMEN_INTEGRADO.AsQueryable();
        }


        public IQueryable<VOLUMEN_INTEGRADO> GetVolumenIntegrados()
        {
            return from volumenI in db.VOLUMEN_INTEGRADO
                   where volumenI.FECHA.Date == DateTime.Now.Date
                   orderby volumenI.ID
                   select volumenI;
        }
        
        public VOLUMEN_INTEGRADO GetVolumenIntegrado(int id)
        {
            return db.VOLUMEN_INTEGRADO.SingleOrDefault(d1 => d1.ID == id);
        }
        

        /*Existencias Terminal Oleoducto*/
        public void AddExistenciasOleo(DateTime fec, String est, String sis, String exis, String cpo, String proc)
        {

            //DateTime fecha;
            //fecha = Convert.ToDateTime(fec);
      
            int existencias;
            existencias = Convert.ToInt32(exis);

            int cupo;
            cupo = Convert.ToInt32(cpo);

            int proceso;
            proceso = Convert.ToInt32(proc);


            //existenciasOleo.FECHA = fecha;
            existenciasOleo.FECHA = fec;
            existenciasOleo.ESTACION = est;
            existenciasOleo.SISTEMA = sis;
            existenciasOleo.EXISTENCIAS = existencias;
            existenciasOleo.CUPO = cupo;
            existenciasOleo.PROCESO = proceso;
            

            db.EXISTENCIAS_TERMINAL_OLEODUCTO.InsertOnSubmit(existenciasOleo);
            db.SubmitChanges();
        }

        public IQueryable<EXISTENCIAS_TERMINAL_OLEODUCTO> FindAllExistenciasTerminalOleo()
        {
            return db.EXISTENCIAS_TERMINAL_OLEODUCTO.AsQueryable();
        }


        public IQueryable<EXISTENCIAS_TERMINAL_OLEODUCTO> GetExistenciasTerminalOleos()
        {
            return from existenciasTO in db.EXISTENCIAS_TERMINAL_OLEODUCTO
                   where existenciasTO.FECHA.Date == DateTime.Now.Date
                   orderby existenciasTO.ID
                   select existenciasTO;
        }
        
        public EXISTENCIAS_TERMINAL_OLEODUCTO GetExistenciasTerminalOleo(int id)
        {
            return db.EXISTENCIAS_TERMINAL_OLEODUCTO.SingleOrDefault(d1 => d1.ID == id);

        }
        

        public void Save()
        {
            db.SubmitChanges();
        }

/*
        public void AddCondiciones(String fecha, String succ, String desc, String entr, String flujo) 
        {
            cope.Fecha = fecha;
            cope.Psuccion = succ;
            cope.Pdescarga = desc;
            cope.Pentrada = entr;
            cope.Flujo = flujo;
                    
            OraMap.Condicionesoperativas.InsertOnSubmit(cope);
            OraMap.SubmitChanges();
        }
        */
    }
}